package Lambda表达式;
/*
* 参数类型可以省略，但是有多个参数的情况下，不能只省略一个·
* 如果参数有且仅有一个，那么小括号可以省略
* 如果代码块的语句只有一条，可以省略大括号和分号，和return关键字
* */
public class Lambda表达式的省略模式 {
    public static void main(String[] args) {
        useAddable((int x,int y)->{
            return x+y;
        });
        /*参数类型可以省略，如果有多个参数的情况下，不能只省略一个*/
        useAddable((x,y)->{
            return x+y;
        });

        useFlyable((String s)->{
            System.out.println(s);
        });
        /*如果参数只有一个，那么小括号可以省略*/
        useFlyable(s->{
            System.out.println(s);
        });

        /*如果代码块的语句只有一条，可以省略大括号和分号，如果有return,return也要省略掉*/
        useAddable((x,y)->x+y);
    }
    /*调用接口里面的相关方法*/
    private static void useFlyable(Flyable1 f){
        f.fly("风和日丽，晴空万里");
    }
    private static void useAddable(Addable1 a){
        int sum=a.add(10,20);
        System.out.println(sum);
    }
}
interface Addable1{
    int add(int x,int y);
}
interface Flyable1{
    void fly(String s);
}
